#ifndef BLOCKWISE_INTEGRATED_RECONSTRUCTION_HPP
#define BLOCKWISE_INTEGRATED_RECONSTRUCTION_HPP

#include "typeAliases.hpp"
#include "solverBase.hpp"
#include "reconstruction.hpp"
#include <array>

namespace hms::swe
{

EdgesValues mapEdgesValues( ArrayXXs& buf, Index nEdges );

/* this should be implemented in RectCells, because it needn't be recalculated */
template<typename MeshType, EdgeRange orien, int side>
HMS_INLINE auto dxQuotient(
	[[maybe_unused]] const Ref<const ArrayXs>& dx
);

template<typename SolverType>
void murilloCheck(
	EdgesValues& ev,
	const Pair<Array1XsCMap>& dCellLR,
	const Pair<Array1XsCMap>& zCellLR,
	const Pair<Array2XsCMap>& vCellLR
);

} // namespace hms::swe

#include "bi_reconstruction.tpp"

#endif